package TreeMap.project;

import TreeSet.projeect.Preson;

import java.util.Comparator;
import java.util.TreeMap;
import java.util.function.Predicate;

/*
    TreeMap实现类的使用：
    特点：使用红黑树存储，没有下标，可以对key自动排序
    判断是否重复（只有判断了程序才可运行），两种方法：1.让创建对象的类实现Comparable接口，并在该接口的CompareTo（）方法中
                                                  来指定排序规则，实现不重复
                                                2.直接在创建TreeMap集合的时候创建自定义比较器(匿名对象)：
                                                                                        new Comparator<T>（）{}
 */
public class PracticeMain {
    public static void main(String[] args) {
        TreeMap<Person,String> treeMap = new TreeMap<>(new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {//自定义判断内容，返回0表示重复
                int c1 = o1.getAge() - o2.getAge();
                int c2 = o1.getName().compareTo(o2.getName());
                return c1 == 0 ? c2:c1;
            }
        });

        Person p1 = new Person("送悟空",100);
        Person p2 = new Person("猪八戒",101);
        Person p3 = new Person("沙和尚",103);
        treeMap.put(p1 , "猴子");
        treeMap.put(p2 , "猪");
        treeMap.put(p3 , "沙子");
        System.out.println(treeMap.size());
        System.out.println(treeMap.toString());
        //添加键值对：
        treeMap.put(new Person("猪八戒",101),"小猪");//键不可重复，若重复了会把值覆盖了，值可以重复
        System.out.println(treeMap.size());

        //遍历：增强for，迭代器都可以

    }

}
